// Have include guard.
#ifndef ASYNCSTATUS_H
#define ASYNCSTATUS_H

/**
 *  The AsyncStatus class is used for asynchronous operations.
 */
class AsyncStatus
{
	public:
		AsyncStatus();
		virtual ~AsyncStatus();
		
		/**
		 *  Gets if the async operation has finished.
		 *  
		 *  @returns If the async operation has finished.
		 */
		virtual bool GetIsFinished() const = 0;
		
		/**
		 *  Cancels the async operation.
		 */
		virtual void Cancel() = 0;
};

#endif // #ifndef ASYNCSTATUS_H 
